//#ifndef TIMER
//#define	TIMER
//
//// *****************************************************************************
//// CHANGE LOG
////
//// *****************************************************************************
//
//// *****************************************************************************
//// *****************************************************************************
//// Section: Includes
//// *****************************************************************************
//// *****************************************************************************
//#include "Defines.h"
//#include <vector>
//
//// *****************************************************************************
//// *****************************************************************************
//// Section: Constants & Data Types
//// *****************************************************************************
//// *****************************************************************************
//
///*! \brief Allows reading and writing to device Timers
// *
// *  Allows reading and writing to device Timers.\n\n
// *
// * TODO: Add a 16-bit and 32-bit queue function so any function can acquire
// * an unused 16 or 32-bit timer for it's use. Once done, the timer can be
// * returned to the queue.
// *
// *  Author: Eric Jordan<br />
// *  Email: ejordan@ara.com<br />
// *  Phone: (802) 728-7477<br />
// *  Last Modified: 2013-04-14
// */
//class Timer
//{
//public:
//
//	/*! \brief Timer Enumerations
//	 */
//	enum class Timers
//	{
//		Core = -1, /*!< Core Timer (32-bit) */
//				Timer0 = 0, /*!< Timer 0 (16-bit) */
//				Timer1 = 1, /*!< Timer 1 (16-bit) */
//				Timer2 = 2, /*!< Timer 2 (16-bit) */
//				Timer23 = 23, /*!< Timer 2 & 3 (32-bit) */
//				Timer3 = 3, /*!< Timer 3 (16-bit) */
//				Timer4 = 4, /*!< Timer 4 (16-bit) */
//				Timer45 = 45, /*!< Timer 4 & 5 (32-bit) */
//				Timer5 = 5 /*!< Timer 5 (16-bit) */
//	};
//
//	static Timer GetTimer(float period, void (*onTick)());
//	static Timer GetTimer(UINT32 preScale, UINT32 period, void (*onTick)());
//
//
//
//	virtual ~Timer();
//
//private:
//	void Initialize(Timer::Timers timer, UINT32 config, UINT32 period, void (*onTick)());
//	void (*_onTick)();
//	static std::vector<Timer> _timers;
//	Timer(Timer::Timers timer, UINT32 preScale, UINT32 period, void (*onTick)());
//	void (*OnTick)();
//};
//
//#endif
//
